import request, { extend } from 'umi-request';
import { message } from 'antd';
import {FormValues} from './data.d'

const errorHandler = function(error: any) {
    if (error.response) {
      // 请求已发送但服务端返回状态码非 2xx 的响应
      if (error.response.status > 400) {
        message.error(error.data.message ? error.data.message : error.data)
      }
    } else {
      // 请求初始化时出错或者没有响应返回的异常
        message.error('network error')
    }
  
    throw error; // 如果throw. 错误将继续抛出.
  
    // 如果return, 则将值作为返回. 'return;' 相当于return undefined, 在处理结果时判断response是否有值即可.
    // return {some: 'data'};
};

const extendRequest = extend({ errorHandler });

export const getRemoteList = async ({page,per_page}:{page:number, per_page:number}) => {
    return extendRequest(`/api/users?page=${page}&per_page=${per_page}`, {
        method: 'get',
      })
        .then(function(response) {
          return response;
        })
        .catch(function(error) {
          return false;
        });
};

export const editRecord = async ({id,values}:{id:number;values:FormValues}) => {
    return request(`/api/users/${id}`, {
        method: 'put',
        data: values,
      })
        .then(function(response) {
            return true;
        })
        .catch(function(error) {
            return false;
        });
    };

export const deleteRecord = async ({id}:{id:number}) => {
    return request(`/api/users/${id}`, {
        method: 'delete'
      })
        .then(function(response) {
            return true;
        })
        .catch(function(error) {
            return false;
        });
};

export const addRecord = async ({values}:{values:FormValues}) => {
    return request(`/api/users/`, {
        method: 'post',
        data: values,
      })
        .then(function(response) {
            return true;
        })
        .catch(function(error) {
            return false;
        });
};